#include <AVUIShape.h>

namespace AVUI {
    
class Rectangle : public Shape
{
public:
    DECLARE_ELEMENT(Rectangle, Shape);

    Rectangle();
    ~Rectangle();

    virtual Size MeasureOverride(const Size& constraintSize);
    virtual Size ArrangeOverride(const Size& constraintSize);

    DECLARE_DEPENDENCY_PROPERTY(RadiusX);
    float get_RadiusX() { return AVUI::UnboxValue<float>(GetValue(get_RadiusXProperty())); }
    void set_RadiusX(float value) { SetValue(get_RadiusXProperty(), AVUI::BoxValue(value)); } 

    DECLARE_DEPENDENCY_PROPERTY(RadiusY);
    float get_RadiusY() { return AVUI::UnboxValue<float>(GetValue(get_RadiusYProperty())); }
    void set_RadiusY(float value) { SetValue(get_RadiusYProperty(), AVUI::BoxValue(value)); } 

protected:
    virtual void OnRender(DrawingContext& drawingContext);

private:
    static void StaticConstructor();

    Rect m_rect;
};



}; // namespace AVUI
